/* 
连接数据库的函数

连接数据库成功后, 立即插入一个用户: admin/111111
  查询admin用户, 如果没有才插入
*/
const mongoose = require('mongoose')
const md5 = require('md5')
const UserModel = require('./models/UserModel')

module.exports = () => {
  // 连接数据库, 产生一个promise(当连接成功后就会自动变为成功的promise)
  const promise = mongoose.connect('mongodb://localhost:27017/user_manage2')

  // 绑定连接成功的监听 => 提示连接数据库成功
  mongoose.connection.on('open', async () => {
    console.log('连接数据库成功')
    /* 
    连接数据库成功后, 立即插入一个用户: admin/111111
    查询admin用户, 如果没有才插入
    */
    const user = await UserModel.findOne({username: 'admin'})
    if (!user) {
      UserModel.create({
        username: 'admin',
        pwd: md5('111111'),
        profile: '/upload/admin.png'
      })

      for (let index = 0; index < 20; index++) {
        UserModel.create({
          username: 'wh2201516-'+ (index+1),
          pwd: md5('111111'),
          profile: '/upload/admin.png'
        })
      }
    }

  
  })
  // 绑定连接失败的监听 => 提示连接数据库失败
  mongoose.connection.on('error', () => {
    console.log('连接数据库失败')
  })

  // 返回promise => 让app.js能知道连接成功
  return promise
}